Adicionando filtros dinamicamente, de forma simples, na sua expressão lambda

O objetivo desse post é expor uma solução que torne fluida e simples a escrita de filtros dinâmicos Imagine que, dado uma determinada condição, você...

O objetivo desse post é expor uma solução que torne fluida e simples a escrita de filtros dinâmicos.

Imagine que, dado uma determinada condição, você quer adicionar um filtro a sua query.

Uma das primeiras implementações que você chegaria, provavelmente, seria algo parecido com o exemplo acima. Várias estruturas condicionais, uma seguida da outra, adicionando ou não um filtro a query.

Bem, imagino que você já deve ter torcido o nariz em pensar como esse código não ficaria tão bem escrito.

Após algumas pesquisas, cheguei em uma solução que considero bem interessante, simplificando a escrita e deixando o código bem mais fluido. Veja o exemplo:

Basicamente, criei um Extension Method para um IQueryable<T>, que recebe dois parâmetros:

  • O primeiro é uma Func<bool> que terá o resultado da condição aplicada
  • O segundo é uma Expression<Func<T,bool>> que será o filtro aplicado na query.

Dessa forma, eu tenho um método de extensão, genérico, que me permite adicionar filtros dinâmicos a minha query além de utilizar todos os métodos da biblioteca do system.Linq em uma unica linha.

Espero que tenha ajudado, até a proxima!

Download WordPress Themes Free
Download WordPress Themes Free
Premium WordPress Themes Download
Download Premium WordPress Themes Free
online free course
download intex firmware
Download WordPress Themes Free
download udemy paid course for free